Cytosim  PI
Cytoskeleton Simulator
MatrixSparseBandSymmetric Class Reference
Inheritance diagram for MatrixSparseBandSymmetric:
Matrix

Public Member Functions

unsigned int size () const
 returns the size of the matrix
 
void deallocate ()
 base for destructor
 
 MatrixSparseBandSymmetric ()
 default constructor
 
virtual ~MatrixSparseBandSymmetric ()
 default destructor
 
void makeZero ()
 set all the element to zero
 
void allocate (unsigned int sz, unsigned int diagonals)
 allocate the matrix, specifying the number of off diagonal
 
void allocate (unsigned int sz)
 allocate the matrix to hold ( sz * sz )
 
realaddr (index_type x, index_type y) const
 returns the address of element at (x, y), no allocation is done
 
realoperator() (index_type x, index_type y)
 returns the address of element at (x, y), allocating if necessary
 
void scale (real a)
 scale the matrix by a scalar factor
 
void addDiagonalBlock (real *M, index_type x, unsigned int sx) const
 add the diagonal block ( x, x, x+sx, x+sx ) from this matrix to M
 
void addTriangularBlock (real *M, index_type x, unsigned int sx) const
 add the upper triagular block ( x, x, x+sx, x+sx ) from this matrix to M
 
void vecMulAdd (const real *X, real *Y) const
 multiplication of a vector: Y = Y + M * X, dim(X) = dim(M)
 
void vecMulAddIso2D (const real *X, real *Y) const
 2D isotropic multiplication of a vector: Y = Y + M * X
 
void vecMulAddIso3D (const real *X, real *Y) const
 3D isotropic multiplication of a vector: Y = Y + M * X
 
bool nonZero () const
 true if matrix is non-zero
 
unsigned int nbNonZeroElements () const
 number of element which are non-zero
 
std::string what () const
 returns a string which a description of the type of matrix
 
void printSparse (std::ostream &) const
 printf debug function in sparse mode: i, j : value
 
int bad () const
 debug function
 
- Public Member Functions inherited from Matrix
 Matrix ()
 empty constructor
 
virtual ~Matrix ()
 empty destructor
 
real value (index_type x, index_type y) const
 returns the value of element at (x, y) or zero if not allocated
 
void copyBlock (real *M, index_type x, unsigned int sx, index_type y, unsigned int sy) const
 copy the block ( x, y, x+sx, y+sy ) from this matrix into M
 
virtual void prepareForMultiply ()
 Optional optimization to accelerate multiplications below.
 
virtual void vecMul (const real *X, real *Y) const
 Vector multiplication: Y <- M * X, size(X) = size(Y) = size(M)
 
virtual real maxNorm () const
 maximum absolute value considering all the elements
 
virtual void printFull (std::ostream &) const
 printf debug function in full lines, all columns
 

Additional Inherited Members

- Public Types inherited from Matrix
typedef unsigned int index_type
 type of an index into the matrix